package com.zs.lib_base.ext

import java.text.ParsePosition
import java.text.SimpleDateFormat
import java.util.*

/**
 * @author wwx
 * @info 时间类的扩展
 * @date 20210706
 */

/**
 * 使用format规则获取当前格式化的时间
 * @return 格式化后的时间字符串
 */
fun String.toCurrentTimeStr():String{
    return try {
        SimpleDateFormat(this, Locale.getDefault()).format(System.currentTimeMillis())
    }catch (e:Exception){
        e.message?.e()
        "时间格式写入有误"
    }
}

/**
 * 时间戳根据转化时间字符串
 * @return 格式化后的时间字符串
 */
fun Long.toTimeStr(pattern: String):String{
    try {
        val sdf = SimpleDateFormat(pattern, Locale.getDefault())
        if(this.toString().length==10){
            return sdf.format(this*1000L)
        }else if(this.toString().length==13){
            return sdf.format(this)
        }
    }catch (e:Exception){
        e.message?.e()
        return "时间格式写入有误"
    }
    return "时间戳错误"
}

/**
 * 时间字符串根据规则转化时间戳
 * @return 时间戳
 */
fun String.toTimeStamp(pattern: String):Long{
    return try {
        SimpleDateFormat(pattern, Locale.getDefault())
            .parse(this, ParsePosition(0)).time
    }catch (e:Exception){
        e.message?.e()
        0L
    }
}